package com.zlz.open.ugs.core.exchange;

import com.zlz.open.ugs.common.config.entity.runtime.UgsUrl;
import com.zlz.open.ugs.exchange.request.UgsRequest;
import com.zlz.open.ugs.exchange.response.UgsResponse;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;

/**
 * @Author: zhulinzhong
 * @Date: 2024/5/30
 */
public interface Exchange {

    void setURLSource(UgsUrl ugsUrl);

    String path();

    ServerWebExchange webExchange();

    UgsRequest request();

    UgsResponse response();

    Mono<Void> start();

    interface Wrapper {
        Exchange wrapper();
    }
}
